package com.molichuxing.services.business.dto.response;

import com.molichuxing.framework.dto.ResponseRootDto;
import com.molichuxing.services.property.CarsOperateStatusEnum;
import com.molichuxing.services.property.CarsTypeEnum;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * <p>
 * 车辆表
 * </p>
 *
 * @author
 * @since 2019-01-07
 */
@Data
public class CarBizDto extends ResponseRootDto {

    private static final long serialVersionUID = 1L;

    private Integer id;

    /**
     * 车架号
     */
    private String vin;

    /**
     * 牌照号
     */
    private String licencePlate;

    /**
     * 车型id
     */
    private Integer vehicleId;

    /**
     * 车身颜色id
     */
    private Integer vehicleColorId;

    /**
     * 分子公司id
     */
    private Integer subcompanyId;

    /**
     * 资产id
     */
    private Integer ownershipId;

    /**
     * 当前业务类型(0: 无业务，1:专属里程，2:订阅服务，3大客户)
     */
    private Integer businessType;

    /**
     * 车辆类型（0：新车，1：二手车）
     */
    private Integer vehicleType;

    /**
     * 是否安装Tbox（0：否，1：是）
     */
    private Boolean isInstallTbox;

    /**
     * 车辆位置（1：中转库，2：门店）
     */
    private Integer stockType;

    /**
     * 车辆所在仓库
     */
    private Integer stockId;

    /**
     * 是否已上牌（0：否，1：是）
     */
    private Boolean isHavePlate;

    /**
     * 是否已上牌
     */
    private String isHavePlateStr;

    /**
     * 是否已上交强险（0：否，1：是）
     */
    private Boolean isHaveCompulsory;

    /**
     * 是否已上商业险（0：否，1：是）
     */
    private Boolean isHaveCommercial;

    /**
     * 是否采购入库（0：否，1：是）
     */
    private Boolean isInStock;

    /**
     * 是否删除（0：未删除，1：删除）
     */
    private Boolean isDelete;

    /**
     * 采购日期
     */
    private LocalDateTime purchaseDate;

    /**
     * 运营状态（0：待出租，1：已出租，2：不可租）
     */
    private Integer status;

    /**
     * 车辆类型Str
     */
    private String vehicleTypeStr;

    /**
     * 运营状态
     */
    private String statusStr;

    /**
     * 发动机/电机号编号
     */
    private String engineCode;


    public void setVehicleType(int vehicleType) {
        this.vehicleType = vehicleType;
        this.vehicleTypeStr = CarsTypeEnum.getName(vehicleType);
    }

    public void setStatus(Integer status) {
        this.status = status;
        this.statusStr = CarsOperateStatusEnum.getName(status);
    }

    public void setIsHavePlate(Boolean isHavePlate) {
        this.isHavePlate = isHavePlate;
        if (isHavePlate) {
            this.isHavePlateStr = "已上牌";
        } else {
            this.isHavePlateStr = "未上牌";
        }
    }


}
